home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / m68k / ccur-GAS.h < prev    next >
C/C++ Source or Header  |  1994-06-22  |  4KB  |  128 lines

  1. /* Definitions of target machine for GNU compiler.  Concurrent 68k version.
  2.    Copyright (C) 1987, 1988 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU CC.
  5.  
  6. GNU CC is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GNU CC is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU CC; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef MASSCOMP
  21. #define MASSCOMP
  22. #endif
  23.  
  24. #ifndef CONCURRENT
  25. #define CONCURRENT
  26. #endif
  27.  
  28. #ifndef __mc68000__
  29. #define __mc68000__
  30. #endif
  31.  
  32. #ifndef __mc68020__
  33. #define __mc68020__
  34. #endif
  35.  
  36. #define USE_GAS
  37. #define MOVE_RATIO 100
  38.  
  39. #define SPACE_AFTER_L_OPTION
  40. #define SWITCHES_NEED_SPACES " "
  41.  
  42. #define TARGET_DEFAULT 0407 /* See m68k.h.  7 means 68020 with 68881.  */
  43.  
  44. #include "m68k/m68k.h"
  45.  
  46. #define SIZE_TYPE "int"
  47.  
  48. /* for 68k machines this only needs to be TRUE for the 68000 */
  49.  
  50. #undef STRICT_ALIGNMENT     
  51. #define STRICT_ALIGNMENT 0
  52.  
  53. /* Names to predefine in the preprocessor for this target machine.  */
  54. #define CPP_PREDEFINES \
  55.     "-Dmc68000 -Dmasscomp -DMASSCOMP -Dunix -DLANGUAGE_C -Dconcurrent -DCONCURRENT"
  56.  
  57. #undef TARGET_VERSION
  58. #define TARGET_VERSION fprintf (stderr, " (68k, GNU GAS syntax)");
  59.  
  60. /* Discard internal local symbols beginning with 'L'. */
  61. #define LINK_SPEC "-X"
  62.  
  63. /* Every structure or union's size must be a multiple of 4 bytes. */
  64. #define STRUCTURE_SIZE_BOUNDARY 16 
  65.  
  66. /* No data type wants to be aligned rounder than this.  */
  67. #undef BIGGEST_ALIGNMENT
  68. #define BIGGEST_ALIGNMENT 32
  69.  
  70. /* Allocation boundary (in *bits*) for storing pointers in memory.  */
  71. #undef POINTER_BOUNDARY
  72. #define POINTER_BOUNDARY 32
  73.  
  74. /* Alignment of field after `int : 0' in a structure.  */
  75. #undef EMPTY_FIELD_BOUNDARY
  76. #define EMPTY_FIELD_BOUNDARY 32
  77.  
  78. /* Allocation boundry in bits for the code of a function */
  79. #undef  FUNCTION_BOUNDRY
  80. #define FUNCTION_BOUNDRY 32
  81.  
  82. /* Make strings long-word aligned so dhrystones will run faster. */
  83. #define CONSTANT_ALIGNMENT(EXP, ALIGN) \
  84.    (TREE_CODE (EXP) == STRING_CST \
  85.     && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
  86.  
  87. /* Make arrays of chars word-aligned for the same reasons.  */
  88. #define DATA_ALIGNMENT(TYPE, ALIGN)        \
  89.   (TREE_CODE (TYPE) == ARRAY_TYPE        \
  90.    && TYPE_MODE (TREE_TYPE (TYPE)) == QImode    \
  91.    && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
  92.  
  93. /* This is BSD, so it wants DBX format.  */
  94. #define DBX_DEBUGGING_INFO
  95.  
  96. /* Override parts of m68k.h */
  97.  
  98. #undef CALL_USED_REGISTERS
  99. #define CALL_USED_REGISTERS \
  100.  {1, 1, 0, 0, 0, 0, 0, 0, \
  101.   1, 1, 0, 0, 0, 0, 0, 1, \
  102.   1, 1, 0, 0, 0, 0, 1, 1 }
  103.  
  104. #undef REG_ALLOC_ORDER
  105. #define REG_ALLOC_ORDER \
  106. {  0,  1,  2,  3,  4,  5,  6,  7,\
  107.    8,  9, 10, 11, 12, 13, 14, 15, \
  108.   16, 17, 22, 23, 18, 19, 20, 21 }
  109.  
  110. #undef ASM_FILE_START
  111. #define ASM_FILE_START(FILE)    \
  112.   fprintf (FILE, "#NO_APP\n.globl fltused\n");
  113.  
  114. #undef ASM_OUTPUT_ALIGN
  115. #define ASM_OUTPUT_ALIGN(FILE,LOG)    \
  116. { int _LOG = LOG;                       \
  117.   if (_LOG == 1)            \
  118.     fprintf (FILE, "\t.even\n");    \
  119.   else if (_LOG == 2)                   \
  120.     fprintf (FILE, "\t.align 4\n");     \
  121.   else if (_LOG != 0)            \
  122.     fprintf (FILE, "\t.align %d\n", _LOG);\
  123. }
  124.  
  125. /* crt0.c should use the vax-bsd style of entry, with a dummy arg.  */
  126.  
  127. #define CRT0_DUMMIES bogus_fp,
  128.